
//获取dom元素
var $ = function (select) {
    if (select.indexOf('#') >= 0) {
        return document.querySelector(select);
    } else {
        var result = document.querySelectorAll(select);
        if (result.length == 1) {
            return result[0];
        } else {
            return result;
        }
    }
}

//获取原素的样式
function getStyle(attr) {
    if (this.currentStyle) {//ie  
        return this.currentStyle[attr];
    } else {
        return getComputedStyle(this)[attr];
    }
}

// 设置CSS变量
function setCssParam(cssPro, cssVal) {
    if (cssPro.indexOf('--') < 0) {
        cssPro = '--' + cssPro;
    }
    document.body.style.setProperty(cssPro, cssVal);
}

// 获取CSS变量
function getCssParam(cssPro) {
    if (cssPro.indexOf('--') < 0) {
        cssPro = '--' + cssPro;
    }
    return document.body.style.getPropertyValue(cssPro);
}

// 为元素添加事件监听
function addMyEventListner(arr, type, f) {
    if (arr.length && arr.length > 1) {
        Array.prototype.forEach.call(arr, function (item, i) {
            item[type] = f;
        });
    } else {
        arr[type] = f;
    }

}

// 获取元素兄弟节点
function getMySiblings(elm) {
    var a = [];
    var p = elm.parentNode.children;
    for (var i = 0, pl = p.length; i < pl; i++) {
        if (p[i] !== elm) a.push(p[i]);
    }
    return a;
}

// 获取发生某种事件并且添加过该事件监听的对象
function getMyEventTarget(e,type){
    var tar = e.target;
    while (tar && !tar['on' + type]) {
        tar = tar.parentNode;
    }
    return tar;
}

function hasMyClass(obj, cls) {  
    if (!obj.className){
        return false;
    }
    return obj.className.indexOf(cls) >= 0;  
}  
  
function addMyClass(obj, cls) {  
    if (!this.hasMyClass(obj, cls)) obj.className += " " + cls;  
}  
  
function removeMyClass(obj, cls) {  
    if (hasMyClass(obj, cls)) {  
        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');  
        obj.className = obj.className.replace(reg, ' ');  
    }  
}  
  
function toggleMyClass(obj,cls){  
    if(hasClass(obj,cls)){  
        removeMyClass(obj, cls);  
    }else{  
        addMyClass(obj, cls);  
    }  
} 